package com.hmall.item.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hmall.common.exception.BizIllegalException;
import com.hmall.item.domain.dto.ItemDTO;
import com.hmall.item.domain.dto.OrderDetailDTO;
import com.hmall.item.domain.po.Item;

import java.util.Collection;
import java.util.List;

/**
 * 商品业务接口
 * 继承自MyBatis-Plus的IService，提供基础CRUD功能
 * 扩展自定义方法实现库存扣减和批量查询商品功能
 */
public interface IItemService extends IService<Item> {

    /**
     * 批量扣减商品库存
     * @param items 订单明细列表，包含商品ID和购买数量
     * @throws BizIllegalException 库存不足或更新失败时抛出
     */
    void deductStock(List<OrderDetailDTO> items);

    /**
     * 根据商品ID集合批量查询商品信息
     * @param ids 商品ID集合
     * @return 商品DTO列表（包含商品基本信息）
     */
    List<ItemDTO> queryItemByIds(Collection<Long> ids);
}